<?php
//+----------------------------------------------------
//| 工具类: 常用正则验证类
//| Author: web_dxj@163.com
//+----------------------------------------------------

namespace Api\Libs;

class PregUtil {

	/**
	 * 验证手机号码
	 * @param  string $tel 手机号码
	 * @return boolean       验证记过
	 */
	public static function preg_tel($tel) {
		if (empty($tel)) return false;
		$pattern = '/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/';
		$flag = preg_match($pattern, $tel);
		if (empty($flag)) return false;
		return true;
	}


	/**
	 * 验证电子邮箱
	 * @param  string $email 电子邮箱地址
	 * @return boolean       返回验证结果
	 */
	public static function preg_email($email) {
		if(empty($email)) return false;
		$pattern = '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/';
		$flag = preg_match($pattern, $email);
		if (empty($flag)) return false;
		return true;
	}


	/**
	 * 验证密码格式(以字母开头，长度在6~18之间，只能包含字母、数字和下划线)
	 * @param  string $email 密码
	 * @return boolean       返回验证结果
	 */
	public static function preg_pwd($pwd) {
		if (empty($pwd)) return false;
		$pattern = '/^\w{5,17}$/';
		$flag = preg_match($pattern, $pwd);
		if (empty($flag)) return false;
		return true;
	}


	/**
	 * 验证身份证号码
	 * @param  string $idcard 身份证号码，15位或者18位
	 * @return boolean        返回验证结果
	 */
	public static function preg_idcard($idcard) {
		$idcard = trim($idcard);
		$pattern = '/(^\d{15}$)|(^\d{17}(\d|X|x)$)/';
		$flag = preg_match($pattern, $idcard);
		if (empty($flag)) return false;
		return true;
	}



	/**
	 * 将手机中间转换为*
	 * @param  string $tel 电话号码
	 * @return string      转换后的号码
	 */
	public static function handler_phone($tel) {

		if (!PregUtil::preg_tel($tel)) return '';

		$pattern = '/(\d{3})\d{4}(\d{3})/';
		$replacement = "\$1****\$2";
		return preg_replace($pattern,$replacement,$tel);
	}

}